Exemplos de funções Inter-Registro de Gráficos
Exemplos de Função Top
Esses exemplos foram elaborados com a função top, mas podem ser aplicados de forma semelhante às funções bottom, first e last. No entanto, as funções first e last são relevantes apenas para tabelas dinâmicas.
Exemplo 1:
Examine a tabela estática abaixo, considerando o uso da função top em uma tabela unidimensional:
Month | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|
- | 21 | 3 | 700% |
1 | 3 | 3 | 100% |
2 | 7 | 3 | 233% |
3 | 11 | 3 | 367% |
Na dimensão única, a função top sempre fará referência à primeira linha de dados da tabela (a linha de total não é incluída).
As expressões que utilizam a função top também serão avaliadas corretamente na linha de total, pois o total tem uma nítida relação com um segmento de coluna específico que, nesse caso, é a coluna inteira.
Exemplo 2:
Esta é uma tabela estática bidimensional classificada principalmente pelo campo Grp:
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | 1 |
1 | A | 1 | 1 | 1 |
2 | A | 3 | 1 | 1 |
3 | A | 5 | 1 | 1 |
1 | B | 2 | 2 | 1 |
2 | B | 4 | 2 | 1 |
3 | B | 6 | 2 | 1 |
A função top, sem o qualificador total, agora retornará a expressão avaliada na linha superior do grupo de classificação interno (nesse caso, a dimensão Grp). Um valor será retornado para Grp = A e outro para Grp = B.
Ao usar o qualificador total no caso de dimensão múltipla, você novamente poderá fazer referência à linha superior absoluta da tabela com o mesmo valor retornado para todas as linhas. A expressão certamente será avaliada para o segmento de coluna que abrange a coluna inteira.
A expressão que utiliza a função top, sem o qualificador total, será avaliada como NULL na linha de total, já que não pode ser associada nitidamente a um segmento de coluna específico.
Agora, a tabela simples acima será convertida em tabela dinâmica, com todos os totais ativados.
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
1 | A | 1 | 1 | 1 |
1 | B | 2 | 1 | 1 |
1 | Total | 3 | 1 | - |
2 | A | 3 | 3 | 1 |
2 | B | 4 | 3 | 1 |
2 | Total | 7 | 3 | - |
3 | A | 5 | 5 | 1 |
3 | B | 6 | 5 | 1 |
3 | Total | 11 | 5 | - |
Total | - | 21 | - | 1 |
A expressão que utiliza a função top, sem o qualificador total, será avaliada como NULL na linha de total, já que não pode ser associada nitidamente a um segmento de coluna específico. Entretanto, todos os subtotais serão avaliados para cada segmento de coluna.
A expressão que utiliza o qualificador total não terá valores nos subtotais, mas retornará um valor na linha de total geral.
Exemplo 3:
Examine a seguinte tabela simples classificada no campo Grp:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
2 | A | 3 | 1 | 300% |
3 | A | 5 | 1 | 500% |
1 | B | 2 | 2 | 100% |
2 | B | 4 | 2 | 200% |
3 | B | 6 | 2 | 300% |
É possível continuar alterando a ordem de classificação entre os campos, de forma que o gráfico seja classificado em primeiro lugar no campo Mês. Agora, a tabela terá esta aparência:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
1 | B | 2 | 1 | 200% |
2 | A | 3 | 3 | 100% |
2 | B | 4 | 3 | 133% |
3 | A | 5 | 5 | 100% |
3 | B | 6 | 5 | 120% |
Exemplos de Função Above
Esses exemplos foram elaborados com a função above, mas podem ser aplicados de forma semelhante às funções below, before e after. No entanto, as funções before e after são relevantes apenas para tabelas dinâmicas.
Exemplo 4:
Examine a tabela estática abaixo, considerando o uso da função above em uma tabela unidimensional:
Month | sum(Val) | above(sum(Val)) | sum(Val) / above(sum(Val)) |
---|---|---|---|
- | 21 | - | - |
1 | 3 | - | - |
2 | 7 | 3 | 233% |
3 | 11 | 7 | 157% |
A terceira coluna mostra a expressão sum(Val) avaliada uma linha acima da atual, o que pode ser confirmado pela comparação com os valores para sum(val) na segunda coluna. A função above retorna NULL na primeira linha, já que não há nenhuma linha acima para avaliar a expressão. A função above sempre retorna NULL em todas as linhas de total.
A quarta coluna demonstra o uso mais comum dessa função, ou seja, calcular a diferença entre diferentes períodos de tempo, por exemplo.
Exemplo 5:
Examine a tabela dinâmica bidimensional abaixo:
Grp | Month | sum(Val) | above(sum(Val)) | above(total sum(Val)) |
---|---|---|---|---|
A | 1 | 1 | - | - |
A | 2 | 3 | 1 | 1 |
A | 3 | 5 | 3 | 3 |
A | Total | 9 | - | - |
B | 1 | 2 | - | 5 |
B | 2 | 4 | 2 | 2 |
B | 3 | 6 | 4 | 4 |
B | Total | 12 | - | - |
Total | - | 21 | - | - |
A função above, sem o qualificador total (terceira coluna), funcionará somente em cada grupo de classificação. Um valor NULL será retornado na linha superior de cada segmento de coluna.
Quando um qualificador total for incluído (quarta coluna), a coluna inteira será considerada um segmento de coluna. Somente a linha superior retornará NULL. Todas as linhas de total serão desconsideradas e retornarão NULL.
Exemplos das Funções RowNo e NoOfRows
Esse exemplo foi elaborado com as funções RowNo e NoOfRows, mas pode ser aplicado de forma semelhante às funções ColumnNo e NoOfColumns. No entanto, as funções ColumnNo e NoOfColumns são relevantes apenas para tabelas dinâmicas.
Exemplo 6:
Examine a tabela dinâmica bidimensional abaixo:
Month | Grp | RowNo() | RowNo(total) | NoOfRows() | NoOfRows(total) |
---|---|---|---|---|---|
1 | A | 1 | 1 | 2 | 6 |
1 | B | 2 | 2 | 2 | 6 |
1 | Total | 0 | - | 2 | - |
2 | A | 1 | 3 | 2 | 6 |
2 | B | 2 | 4 | 2 | 6 |
2 | Total | 0 | - | 2 | - |
3 | A | 1 | 5 | 2 | 6 |
3 | B | 2 | 6 | 2 | 6 |
3 | Total | 0 | - | 2 | - |
Total | - | - | 0 | - | 6 |
- Coluna 3 A função RowNo retornará o número de linha em cada segmento de coluna do grupo de classificação. Nas linhas de subtotal, o número de linha 0 será retornado, pois esses totais pertencem claramente a uma segmento de coluna específico. O valor NULL será retornado na linha de total geral.
- Coluna 4 Com o qualificador total, a função RowNo retornará o número de linha da coluna inteira. O valor NULL será retornado nas linhas de subtotal. O valor 0 será retornado na linha de total geral.
- Coluna 5 A função NoOfRows retornará o número de linhas de dados em cada segmento de coluna do grupo de classificação. Nas linhas de subtotal, o mesmo número será retornado como nas linhas de dados. O valor NULL será retornado na linha de total geral.
- Coluna 6 Com o qualificador total, a função NoOfRows retornará o número de linhas de dados da coluna inteira, o mesmo que será retornado na linha de total geral. O valor NULL será retornado nas linhas de subtotal.